-- *****************************************************************
-- REDSTONE-HDLC-MIB
--
-- Redstone Communications Inc. Enterprise MIB
-- HDLC MIB
--
-- Copyright 1998-1999 Redstone Communications, Incorporated.
-- All Rights Reserved.
-- *****************************************************************

REDSTONE-HDLC-MIB DEFINITIONS ::= BEGIN

IMPORTS
        MODULE-IDENTITY,
        OBJECT-TYPE,
        Integer32
                FROM SNMPv2-SMI

        RowStatus
                FROM SNMPv2-TC

    InterfaceIndex, InterfaceIndexOrZero
        FROM IF-MIB

        rsMgmt
                FROM REDSTONE-SMI

    RsNextIfIndex
        FROM REDSTONE-TC;


rsHdlcMIB  MODULE-IDENTITY
        LAST-UPDATED "0001260000Z"
        ORGANIZATION "Redstone Communications, Inc."
        CONTACT-INFO
        "
        Redstone Communications, Inc.
                5 Carlisle Road
        Westford MA 01886
        USA
        Tel:    +1-978-692-1999
                Email:  mib@redstonecom.com
        "
        DESCRIPTION
                "The HDLC MIB for the 
                Redstone Communications Inc. enterprise."
        REVISION      "0001260000Z"
        DESCRIPTION
                "Changed the valid integer range for rsHdlcIfMru and rsHdlcIfMtu."
        REVISION      "9907280000Z"
        DESCRIPTION
                "Removed DEFVALs for rsHdlcIfMru and rsHdlcIfMtu. Defaults are
        chosen according to type of underlying interface."
        REVISION      "9907140000Z"
        DESCRIPTION
                "Added rsHdlcIfDataPolarity and updated 
        corresponding compliances."
        REVISION      "9801010000Z"
        DESCRIPTION
                "Initial version of this MIB module."
        ::= { rsMgmt 9 }

-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- Textual conventions
-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

-- No textual conventions are defined in this MIB module.

-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- Managed objects
-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

rsHdlcObjects     OBJECT IDENTIFIER ::= { rsHdlcMIB 1 }

-- 
-- This MIB contains managed objects for Fractional T1 arrangements.
-- Management objects are provided to query for an available
-- interface index, and to create/delete interfaces of this type.
-- Creating/deleting this interface type using this MIB has
-- the side effect of creating/deleting corresponding entries
-- in the Interface MIB ifTable/ifXTable, and in the Redstone
-- Enterprise Interface MIB rsIfTable.
--



-- //////////////////////////////////////////////////////////////////////
--
-- HDLC Interfaces
--
-- //////////////////////////////////////////////////////////////////////

--
-- IfIndex selection for creating new FT1 interfaces
--

rsHdlcNextIfIndex OBJECT-TYPE
    SYNTAX      RsNextIfIndex
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Coordinate ifIndex value allocation for entries
        in rsHdlcIfTable.

        A GET of this object returns the next available ifIndex 
        value to be used to create an entry in the associated
        interface table; or zero, if no valid ifIndex value is
        available. This object also returns a value of zero when 
        it is the lexicographic successor of a varbind presented 
        in an SNMP GETNEXT or GETBULK request, for which circumstance
        it is assumed that ifIndex allocation is unintended.

        Successive GETs will typically return different
        values, thus avoiding collisions among cooperating
        management clients seeking to create table entries
        simultaneously.
        "
    ::= { rsHdlcObjects 1 }

--
-- The HDLC Interface Table
--

rsHdlcIfTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF RsHdlcIfEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table contains entries for HDLC interfaces present in the system."
    ::= { rsHdlcObjects 2 }

rsHdlcIfEntry OBJECT-TYPE
    SYNTAX      RsHdlcIfEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Each entry describes the characteristics of an HDLC interface. 
        Creating/deleting entries in this table causes corresponding 
        entries for be created /deleted in ifTable/ifXTable/rsIfTable."
    INDEX   { rsHdlcIfIndex }
    ::= { rsHdlcIfTable 1 }

RsHdlcIfEntry ::= SEQUENCE {
    rsHdlcIfIndex
        InterfaceIndex,
    rsHdlcIfRowStatus
        RowStatus,
    rsHdlcIfLowerIfIndex
        InterfaceIndexOrZero,
    rsHdlcIfMtu
        Integer32,
    rsHdlcIfMru
        Integer32,
    rsHdlcIfCrcSize
        INTEGER,
    rsHdlcIfDataPolarity
        INTEGER
    }


rsHdlcIfIndex OBJECT-TYPE
    SYNTAX      InterfaceIndex
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The ifIndex of the HDLC interface. When 
        creating entries in this table, suitable values
        for this object are determined by reading
        rsHdlcNextIfIndex."
    ::= { rsHdlcIfEntry 1 }

rsHdlcIfRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Controls creation/deletion of entries in this table
        according to the RowStatus textual convention, 
        constrained to support the following values only:

            createAndGo
            destroy
            
        To create an entry in this table, the following 
        entry objects MUST be explicitly configured:

            rsHdlcIfRowStatus
            rsHdlcIfLowerIfIndex

        In addition, when creating an entry the following
        conditions must hold:

            A value for rsHdlcIfIndex must have been determined
            previously, by reading rsHdlcNextIfIndex. 

            The interface identified by rsHdlcIfLowerIfIndex
            must exist.

        A corresponding entry in ifTable/ifXTable/rsIfTable is 
        created/destroyed as a result of creating/destroying an entry 
        in this table.
        "
    ::= { rsHdlcIfEntry 2 }

rsHdlcIfLowerIfIndex OBJECT-TYPE
    SYNTAX      InterfaceIndexOrZero
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The ifIndex of an interface over which this HDLC interface 
        is to be layered. A value of zero indicates no layering.
        An implementation may choose to require that a nonzero value
        be configured at entry creation."
    ::= { rsHdlcIfEntry 3 }

rsHdlcIfMtu OBJECT-TYPE
    SYNTAX      Integer32 (0..32763)
    UNITS       "octets"
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The Maximum Transmission Unit this interface is permitted to transmit.

        At creation, if a value for this object is not specified, a suitable
        default will be chosen for the type of lower interface on which this
        interface is stacked.

        This setting plus 2 bytes for HDLC address/control plus the length
        in bytes of the HDLC CRC cannot exceed 65535. The maximum value for
        this object reflects the largest possible value when no CRC is used;
        technology constraints of a particular implementation may further
        limit the upper bound value."
    ::= { rsHdlcIfEntry 4 }

rsHdlcIfMru OBJECT-TYPE
    SYNTAX      Integer32 (0..32763)
    UNITS       "octets"
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The Maximum Receive Unit this interface is permitted to receive.

        At creation, if a value for this object is not specified, a suitable
        default will be chosen for the type of lower interface on which this
        interface is stacked.

        This setting plus 2 bytes for HDLC address/control plus the length
        in bytes of the HDLC CRC cannot exceed 65535. The maximum value for
        this object reflects the largest possible value when no CRC is used;
        technology constraints of a particular implementation may further
        limit the upper bound value."
    ::= { rsHdlcIfEntry 5 }

rsHdlcIfCrcSize OBJECT-TYPE
    SYNTAX      INTEGER {
                    none(0),
                    crc16(1),
                    crc32(2)
                }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Selects CRC size: none, 16 bits, or 32 bits."
    DEFVAL { crc16 }
    ::= { rsHdlcIfEntry 6 }

rsHdlcIfDataPolarity OBJECT-TYPE
    SYNTAX      INTEGER {
                    normal(0),
                    inverted(1)
                }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Polarity of data transmitted on this HDLC interface. Inverted data is
        used for certain line coding configurations to ensure sufficient
        one's density for timing recovery by the remote end."
    DEFVAL  { normal }
    ::= { rsHdlcIfEntry 7 }


-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- Notification control objects
-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

-- No notifications are defined in this MIB. Placeholder follows.

-- rsHdlcTrapControl      OBJECT IDENTIFIER ::= { rsHdlcMIB 2 }



-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- Notifications
-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

-- No notifications are defined in this MIB. Placeholder follows.

-- The following two OBJECT IDENTIFIERS are used to define SNMPv2 
-- Notifications that are easily translated into SNMPv1 Traps.

-- rsHdlcTraps            OBJECT IDENTIFIER ::= { rsHdlcMIB 3 }
-- rsHdlcTrapPrefix       OBJECT IDENTIFIER ::= { rsHdlcTraps 0 }



-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- Conformance information
-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

rsHdlcConformance OBJECT IDENTIFIER ::= { rsHdlcMIB 4 }
rsHdlcCompliances OBJECT IDENTIFIER ::= { rsHdlcConformance 1 }
rsHdlcGroups      OBJECT IDENTIFIER ::= { rsHdlcConformance 2 }

-- compliance statements

rsHdlcCompliance MODULE-COMPLIANCE
        STATUS  obsolete
        DESCRIPTION
                "The compliance statement for entities which implement
                the Redstone HDLC MIB."
        MODULE  -- this module
                MANDATORY-GROUPS { rsHdlcGroup }
        ::= { rsHdlcCompliances 1 }

rsHdlcCompliance2 MODULE-COMPLIANCE
        STATUS  current
        DESCRIPTION
                "The compliance statement for entities which implement
                the Redstone HDLC MIB."
        MODULE  -- this module
                MANDATORY-GROUPS { rsHdlcGroup2 }
        ::= { rsHdlcCompliances 2 }

-- units of conformance

rsHdlcGroup OBJECT-GROUP
        OBJECTS {
                rsHdlcNextIfIndex,

                rsHdlcIfRowStatus,
                rsHdlcIfLowerIfIndex,
                rsHdlcIfMtu,
                rsHdlcIfMru,
                rsHdlcIfCrcSize
        }
        STATUS  obsolete
        DESCRIPTION
                "A collection of objects providing management of HDLC interfaces
                in a Redstone product."
    ::= { rsHdlcGroups 1 }

rsHdlcGroup2 OBJECT-GROUP
        OBJECTS {
                rsHdlcNextIfIndex,

                rsHdlcIfRowStatus,
                rsHdlcIfLowerIfIndex,
                rsHdlcIfMtu,
                rsHdlcIfMru,
                rsHdlcIfCrcSize,
        rsHdlcIfDataPolarity
        }
        STATUS  current
        DESCRIPTION
                "A collection of objects providing management of HDLC interfaces
                in a Redstone product."
    ::= { rsHdlcGroups 2 }

END